package Testes;

import static org.junit.Assert.*;

import java.util.List;

import org.junit.Test;

import DAO.ProfessorDaoImplArquivo;
import Pojo.Professor;

public class ProfessorDaoImplArquivoTest {	
	
	@Test
	public void insercaoNaListaDaCerto() throws Exception{
		Professor professor = new Professor(1,"Thiago","11122233344","dcomp");
		assertEquals(true, new ProfessorDaoImplArquivo().adicionarProfessor(professor));
	}
	
	@Test
	public void insercaoNaListaDuplicadoDaErrado() throws Exception{
		Professor professor = new Professor(1,"Thiago","11122233344","dcomp");
		ProfessorDaoImplArquivo professorDao = new ProfessorDaoImplArquivo();
		professorDao.adicionarProfessor(professor);
		assertEquals(false, professorDao.adicionarProfessor(professor));
	}

	@Test
	public void insercaoNaListaMesmoIdDaErrado() throws Exception{
		Professor professor = new Professor(1,"Thiago","11122233344","dcomp");
		ProfessorDaoImplArquivo professorDao = new ProfessorDaoImplArquivo();
		professorDao.adicionarProfessor(professor);
		professor = new Professor(1,"Maione","22222222233","dcomp");
		assertEquals(false, professorDao.adicionarProfessor(professor));
	}

	@Test
	public void remocaoNaListaDaCerto() throws Exception{
		ProfessorDaoImplArquivo professorDao = new ProfessorDaoImplArquivo();
		Professor professor = new Professor(1,"Maione","12555935841","dcomp");
		assertEquals(true,professorDao.removerProfessor(professor));
	}
	
	@Test
	public void remocaoDeProfessorQueNaoExisteDaErrado() throws Exception{
		Professor professor = new Professor(1,"Thiago de Sousa Silveira","09989403643","dcomp");
		ProfessorDaoImplArquivo professorDao = new ProfessorDaoImplArquivo();
		professorDao.adicionarProfessor(professor);
		professor = new Professor(2,"Maione José","12555935841","dcomp");
		professorDao.adicionarProfessor(professor);
		professor = new Professor(3,"Teste","12555935841","dcomp");
		assertEquals(false,professorDao.removerProfessor(professor));
	}
	
	@Test	
	public void procurarPalavraPorNomeNaListaDaCerto() throws Exception{
		ProfessorDaoImplArquivo professorDao = new ProfessorDaoImplArquivo();
		Professor professor2 = new Professor(2,"Maione José","12555935841","dcomp");
		List<Professor> lista = professorDao.procurarPorNome("Maione José");
		assertNotSame(0, lista.size());
	}
	
	@Test	
	public void ProcurarPalavraPorNomeNaListaDaErrado() throws Exception{
		ProfessorDaoImplArquivo professorDao = new ProfessorDaoImplArquivo();
		Professor professor2 = new Professor(2,"Maione José","12555935841","dcomp");
		List<Professor> lista = professorDao.procurarPorNome("Joseph");
		assertEquals(0, lista.size());
	}
	
	@Test	
	public void procurarPalavraPorCpfNaListaDaCerto() throws Exception{
		ProfessorDaoImplArquivo professorDao = new ProfessorDaoImplArquivo();
		Professor professor = professorDao.procurarPorCpf("12555935841");
		assertNotSame(null, professor);
	}
	
	@Test	
	public void procurarPalavraPorCpfNaListaDaErrado() throws Exception{
		ProfessorDaoImplArquivo professorDao = new ProfessorDaoImplArquivo();
		Professor professor = professorDao.procurarPorCpf("19923922033");
		assertEquals(null, professor);
	}
	
	@Test	
	public void procurarPalavraPorDepartamentoNaListaDaCerto() throws Exception{
		ProfessorDaoImplArquivo professorDao = new ProfessorDaoImplArquivo();
		List<Professor> lista = professorDao.procurarPorDepartamento("dcomp");
		assertNotSame(0, lista.size());
	}
	
	@Test	
	public void procurarPalavraPorDepartamentoNaListaDaErrado() throws Exception{
		ProfessorDaoImplArquivo professorDao = new ProfessorDaoImplArquivo();
		List<Professor> lista = professorDao.procurarPorDepartamento("sei la");
		assertEquals(0, lista.size());
	}
}
